package main

import (
	"fmt"
)

type Transport interface {
	transport()
}

type ApplicationProtocol interface {
	render()

	// 接口Transport组合到接口ApplicationProtocol中
	Transport
}

type HttpProtocol struct {
}

// HttpProtocol实现了transport()方法，可以视作实现了Transport接口
func (protocol *HttpProtocol) transport() {
	fmt.Println("use TCP")
}

// HttpProtocol同时实现了render()方法，可以视作实现了ApplicationProtocol接口
func (protocol *HttpProtocol) render() {
	fmt.Println("user html")
}

func main7() {
	// 变量protocol声明为ApplicationProtocol类型
	var protocol ApplicationProtocol
	protocol = &HttpProtocol{}

	// 变量protocol可以调用transport()和render方法
	protocol.transport()
	protocol.render()
}
